import axios from 'axios'

export function request (config) {
  // 1.创建axios的实例
  const instance = axios.create({
    baseURL: '/api',
    timeout: 5000
  })

  // 2.axios的拦截器
  // 2.1.请求拦截
  instance.interceptors.request.use(config => {
    if (sessionStorage.getItem('token')) { // 判断是否存在token，如果存在的话，则每个http header都加上token
      config.headers.common.token = sessionStorage.getItem('token')
    }
    return config
  }, err => {
    return Promise.reject(err)
  })

  // 2.2.响应拦截
  instance.interceptors.response.use(res => {
    return res
  }, err => {
    if (err.response) {
      // 请求已发出，但服务器响应的状态码不在 2xx 范围内
      console.log(err.response.data)
      console.log(err.response.status)
      console.log(err.response.headers)
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', err.message)
    }
    console.log(err.config)
    // console.log(JSON.stringify(err));//console : Error: Request failed with status code 402
    return Promise.reject(err.response)// 返回接口返回的错误信息
  })

  // 3.发送真正的网络请求
  return instance(config)
}
